1. Field of the Invention
The present invention relates generally to systems and methods for increasing the number of devices connected to a SCSI bus and, more particularly, to a system and method for effectively increasing the number of disk devices of an optical disk autochanger which can be connected to a SCSI bus.
2. Related Art
The small computer systems interface (SCSI) is an ANSI standard communications bus that includes the electrical and logical protocol specification. SCSI provides for the connection of up to eight devices on the bus, each having a unique identification (ID) from zero to seven. The eight devices can be of any type, ranging from host computers to disk drives, tape drives, optical storage devices, printers, scanners, etc. ANSI document number X3.131-1986 (Global Engineering Documents, Irvine, Calif.) describes the electrical and logical protocol specifications for the SCSI. This document is incorporated by reference herein.
SCSI has become an industry standard. It is used, for example, in the computer workstation environment. It is also used in the personal computer environment. It has become the standard for peripherals, such as disk drives, tape drives, optical storage devices, printers, scanners, etc. Like all standards, SCSI is used in a large number of installed pieces of computer equipment. Users have invested considerable money in computers and peripherals which employ the SCSI.
With the constant increase in the performance/price ratio of computer systems, the amount of data and the number of peripherals that need to be accommodated by the SCSI has increased. The problem with this increase is that the SCSI can only accommodate eight devices. Them am many applications where more than eight devices are needed or desired.
FIG. 1 shows a block diagram of a conventional SCSI system. Referring now to FIG. 1, a host computer (also called an initiator) 102 has been arbitrarily assigned SCSI ID No. 7. The host computer 102 is electrically connected to an SCSI bus 104. Connected to SCSI bus 104 are seven additional devices (called targets) 106, 108, 110, 112, 114, 116, and 118. These additional (target) devices 106-118 can be any device that complies with the SCSI standard protocol. For example, devices 108 and 110 are optical disk drives in an optical disk autochanger or library 120. Devices 114 and 116 are optical disk drives in an optical disk autochanger 122. Devices 112 and 118 are robotic devices of autochangers 120 and 122, respectively. Additional device 106 represents any device which communicates via the SCSI protocol.
In this example of FIG. 1, additional device 106 has been assigned, for example, SCSI ID No. 0. Similarly, drive 108 has been assigned SCSI ID No. 1, drive 110 has been assigned SCSI ID No. 2, robotics 112 has been assigned SCSI ID No. 3, drive 114 has been assigned SCSI ID No. 4, drive 116 has been assigned SCSI ID No. 5, and robotics 118 has been assigned SCSI ID No. 6.
Another conventional concept is also illustrated in FIG. 1. The length of the SCSI bus is limited in order to achieve desired electrical performance. For example, the SCSI bus cannot be more than six meters long when a Single Ended approach is used. When Differential communications are used, the SCSI bus can have a maximum length of twenty-five meters.
There are many situations where the additional device is located more than six meters, or more than twenty-five meters, (depending on the communications scheme employed) from the host computer 102. This is graphically illustrated in FIG. 1. It is seen that a conventional repeater 124 connects additional device 106 via a SCSI bus 2 (assigned reference number 126) to the (main) SCSI bus 104. As is well known, repeater 124 provides the necessary signal amplification to allow for the additional device 106 to be physically situated more than the six meter or twenty-five meter limit from the host computer 102.
As is well known, the repeater 124 merely acts to boost the signal level of the signal received on one SCSI bus, which boosted signal is provided to a second SCSI bus and vice versa. In effect, it acts like a conventional repeater in terms of merely amplifying the signal levels from one bus to a second bus. It should be noted that no signal storage or mapping or other function occurs in repeater 124.
As stated above, there are many situations where it is needed or desired to have more than eight devices connected to a SCSI bus. One known approach for allowing for more than eight units to be effectively connected to the SCSI bus is shown in FIG. 2. The SCSI bus 104 is connected to a peripheral device 202. Peripheral device 202 is assigned a single SCSI ID number. As far as the SCSI bus 104 is concerned, peripheral device 202 has a single SCSI identification.
Peripheral device 202 includes a plurality of N drives, for example, (where N is a positive integer greater than 1). Specifically, in the examples shown, peripheral device 202 includes a drive 1 (labeled with reference number 218), a drive 2 (labeled with a reference number 224), and a drive N (labeled by reference number 230). A controller 204 electrically connects the SCSI bus 104 with the drives 218, 224 and 230 using a hard-wired, (often proprietary), and dedicated approach as follows.
As shown, controller 204 includes a microprocessor 206, switching electronics 208, a stored computer program 210, and electronic storage 212 for use by the controller 204 and microprocessor 206. Together, controller 204 routes information received from the SCSI bus 104 to the specific drive 218, 224, 230 as determined by the program stored in controller 204 in program 210. This routing is accomplished using individual buses and control lines for each of the drives. For example, as shown, drive 218 is connected to the controller 204 via a bus 214. In addition, a control line 216 is included, which allows controller 204 to control the operation of drive 218. Similarly, drive 224 includes a bus 220 and a control line 222, and drive 230 includes a bus 226 and a control line 228. It can be seen that this approach requires specific buses and control lines for the controller 204 in order to effect the desired data transfer.
Controller 204 must be programmed using its stored computer program 210 so as to be able to carry out the intended functions that are needed to accommodate the SCSI bus 104. It can be appreciated that the drives 218, 224 and 230 cannot be directly connected to the SCSI bus 104. Similarly, it can be appreciated that the controller 204 is required in order to accommodate the interfacing between the SCSI bus 104 and the drives 218, 224 and 230. Typically, controller 204 is required to reformat data received from SCSI bus 104 for transmission to one or more of the drives 218, 224 and 230, and for reformatting data received from a drive 218, 224, and 230 for transmission on the SCSI bus 104. Therefore, it can also be appreciated that considerable data reformatting and SCSI bus protocol accommodation must be made by the peripheral device 202. Nevertheless, peripheral device 202 provides additional storage capacity than can be accomplished using a single drive attached directly to SCSI bus 104.
The SCSI standard further includes a logical unit number (LUN). A logical unit number is specified from 0 to 7. Some host computers 102 include drivers (hardware and/or software) which provide the logical unit number, whereas others have more simple drivers that do not provide the logical unit number. Modification of the host computer to include such a driver is relatively simple and inexpensive and is conventionally known.
The provision of a logical unit number by the host computer 102 on the SCSI bus 104 allows for a peripheral device 202 to specify up to eight devices contained in the peripheral device 202. In other words, the logical unit number allows the peripheral device 202 to select a desired internal device that is being specified by the SCSI bus 104. Thus, up to eight devices can be contained in a peripheral device 202 having a controller 204 which can recognize and operate using a logical unit number provided on the SCSI bus 104.
Conventional approaches required that the controller 204 recognize the logical unit number, then act to control the internal devices 218,224 through 230, and to re-map data sent to and received from the devices 218, 224 through 230 via the controller 204. This requires typically that the devices 218, 224 and 230 be dedicated. It also requires considerable additional electronics to accommodate the logical unit function specified on the SCSI bus 104. Nevertheless, it can be seen that this results in a single SCSI ID number being able to accommodate up to eight internal devices as specified by the logical unit number.
Conventional approaches exhibit significant deficiencies. Where the logical unit number is not used, it can be seen that the number of devices that can be accommodated on the SCSI bus 104 is a maximum of eight. Where the logical unit number is employed, it can be seen that the maximum number of logical unit numbers of devices that can be accommodated on the SCSI bus 104 is fifty-six (7 SCSI ID numbers.times.8 logical units, where the first SCSI ID number is assigned to the host computer 102). However, considerable electronics is required to accommodate the additional devices that are assigned to a specific SCSI ID number. In addition, these devices typically have to be dedicated, and do not use the SCSI bus interface between their controller 204 and the device 218, 224 through 230. Reformatting and control signaling is required, and existing devices merely having SCSI interfaces cannot be connected to the controller 204 or used in such a configuration.
Commonly owned U.S. Pat. No. 5,239,632 to Larner, titled "Device to Translate Logical Unit Number Communications on One SCSI Bus to ID Communications on a Subordinate SCSI Bus," incorporated herein by reference as if reproduced in full below, discloses a system and method which overcomes the above-noted limitations. A master SCSI ID number is assigned to a minnow device. Using the LUN, the minnow device is able to communicate with seven SCSI devices over a subordinate SCSI bus using a single SCSI ID number of the master SCSI bus.
The minnow device performs a select cycle to permit communication between an initiator device (a host) connected to the master SCSI bus and a target device (a disk drive) connected to the subordinate SCSI bus. The minnow device performs a re-select cycle to permit communication between the target device and the initiator device.
During a select cycle, an initiator device selects the minnow using SCSI ID number set on a master SCSI bus, and the minnow responds and retrieves a logical unit number from an Identify Message Out command, according to standard SCSI protocol. The minnow then converts the logic unit number to the ID of the specified target device on a subordinate SCSI bus, the target device responds and an Identify Message Out command is sent to the target device on the subordinate SCSI bus. The minnow then connects the master SCSI bus to the subordinate SCSI bus so that the initiator device can communicate with the target device.
During a re-select cycle, the target device re-selects the minnow using the SCSI ID number sent on the subordinate SCSI bus. The minnow converts the subordinate bus SCSI ID number to the logical unit number of the master SCSI bus, re-selects the initiator device on the master SCSI bus, and handshakes the Identify Message In to the initiator. The minnow then connects the master SCSI bus to the subordinate SCSI bus so that the target device can communicate with the initiator device.
While the system and method of the Larner patent allows up to fifty-six devices to be connected to a SCSI bus without requiring any modification of the devices in terms of the SCSI interfaces, further improvements in a SCSI-based environment are desired. For example, referring to FIG. 1, in the environment of an optical library 122 (also called an optical disk autochanger or jukebox), host 102 is required to track and control which disks are loaded into which drives. Host 102 controls disk swapping via robot 118 at SCSI ID no. 6. For example, assume disk A is loaded into drive 114 and disk B is loaded into drive 114. If host 102 wishes to access disk C, then it must send a command to robot 118 instructing the robot to perform a swap to replace one of disks A or B with disk C. After the swap, host 102 can communicate the disk access request to the drive containing disk C.
In such an environment, any change in the configuration of the drives within jukebox 122 must be made known to host 102. For example, if drive 114 becomes inoperable, this fact must be made known to host 102. Similarly, if drives axe added to jukebox 122 according to a scheme using logical unit numbers such as that disclosed in the Larner patent, then host 102 must know the logical unit number assignments for the additional drives. Whenever a change is made to the configuration of the drives in juke box 122, the change must be made known to the host. This requires that host 102 be reconfigured and m-booted, necessitating operator intervention and host down time.
What is needed is a system for increasing the number of disk drives in an optical disk jukebox which overcomes the limitations of known systems.